package com.hst.capacity.infra.convertor;

import com.hst.capacity.domain.model.entity.account.*;
import com.hst.capacity.domain.model.response.account.*;
import com.hst.capacity.domain.model.response.franchisee.FranchiseeDepositDetailVO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 *  分账模块的POJO属性转换器
 *
 * @author jin
 * */
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface AccountConvertor {

    AccountConvertor INSTANCE = Mappers.getMapper(AccountConvertor.class);

    IntercityAccountVO convert(IntercityAccountEntity entity);

    List<IntercityBillVO> convert(List<IntercityAccountDetailEntity> entity);

    ExpressAccountVO convert(ExpressAccountEntity byOwnerId);

    List<ExpressBillVO> convertExBill(List<ExpressAccountDetailEntity> content);

    SpecialAccountVO convert(SpDriverAccountEntity entity);

    List<SpecialBillVO> convertSpBill(List<SpecialAccountDetailEntity> content);

    FranchiseeDepositSelectVO convert(FranchiseeDepositEntity byIdOwner);

    List<FranchiseeDepositDetailVO> convertFranchiseeDetail(List<FranchiseeDepositDetailEntity> content);

}
